package cn.com.doone.common.uc.web.dao;

import java.util.List;
import java.util.Map;

import cn.com.doone.common.uc.service.dto.IpBlackList;
import cn.com.doone.common.uc.service.dto.LoginLog;

public interface SyncDao {

	/**
	 * 根据token获取用户信息
	 * @param token
	 * @return
	 */
	public Map<String,Object> queryInfoIdByToken(Map<String,Object> paramsMap);
	
	/**
	 * 查询IP黑名单列表
	 * @param IP
	 * @return
	 */
	public List<Map<String,Object>> queryIpBlackList(Map<String,Object> params);
	
	/**
	 * 统计某个时间段某IP登录失败的次数
	 * @param ip
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public long countLoginLogByIp(Map<String,Object> params);
	
	/**
	 * 统计某个时间段某账号登录失败的次数
	 * @param userInfoId
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public long countLoginLogByUserId(Map<String,Object> params);
	
	/**
	 * 保存ip至黑名单
	 * @param ipBlackList
	 * @return
	 * @throws Exception
	 */
	public int saveIPBlackListInfo(IpBlackList ipBlackList);
	
	/**
	 * 保存登陆日志
	 * @param loginLog
	 * @return
	 */
	public int saveLoginLog(LoginLog loginLog);
	
	/**
	 * 判断是否是弱密码
	 * @param password
	 * @return
	 */
	public long countWeakPassword(String password);
	
	/**
	 * 根据token查询信息
	 * @param token
	 * @return
	 */
	public Map<String,Object> queryTokenInfoByToken(Map<String,Object> params);
	
	/**
	 * 获取角色
	 * @param userName
	 * @return
	 */
	public List<Map<String,Object>> queryRoles(Map<String,Object> tokenMap);
	
	/**
	 * 查询岗位列表
	 * @param paramsMap
	 * @return
	 */
	public List<Map<String,Object>> queryPostList(Map<String,Object> paramsMap);
	
	/**
	 * 统计岗位列表
	 * @param paramsMap
	 * @return
	 */
	public long countPostList(Map<String,Object> paramsMap);
	
	/**
	 * 查询租户下所有用户
	 * @param paramsMap
	 * @return
	 */
	public List<Map<String,Object>> queryTenantUserInfoList(Map<String,Object> paramsMap);
	
	/**
	 * 删除应用绑定账号
	 * @param paramsMap
	 * @return
	 */
	public int deleteAppBindAccount(Map<String,Object> paramsMap);
	
	/**
	 * 添加应用绑定账号
	 * @param paramsMap
	 * @return
	 */
	public int insertAppBindAccount(Map<String,Object> paramsMap);
	
}
